// 将元素插入数组的指定位置
const insert = (
    arr, // 数组
    element,  // 元素
    index, // 指定索引
) => {
    if (index < 0 || index > arr.length) return
    arr.splice(index, 0, element);
    return arr;
}

// 将元素插入数组的头部
const insertFirst = (
    arr, // 数组
    element,  // 元素
) => {
    insert(arr, element, 0);
    return arr;
}

// 将元素插入数组的尾部
const insertEnd = (
    arr, // 数组
    element,  // 元素
) => {
    insert(arr, element, arr.length);
    return arr;
}
// 移除指定索引的元素
const remove = (arr, index) => {
    if (index < 0 || index >= arr.length) return
    arr.splice(index, 1);
    return arr;
}

// 移除末尾的元素
const removeEnd = (arr) => {
    remove(arr, arr.length - 1);
    return arr;
}

// 移除第一个元素
const removeFirst = (arr) => {
    remove(arr, 0);
    return arr;
}

// 根据id获取索引
const getIndexById = (arr, id) => {
    if (arr?.length === 0) return -1
    for (let i = 0; i < arr.length; i++) if (arr[i].id === id) return i
    return -1
}

export default {
    insert,
    insertFirst,
    insertEnd,
    remove,
    removeFirst,
    removeEnd,
    getIndexById,
}